#include <iostream>
#include "config.h"
#include "sort/Common.h"
#include "sort/MySort.hpp"

using namespace std;

template<typename T>
int len(T& arr) {
    return sizeof(arr) / sizeof(arr[0]);
}

template<typename T>
void printArr(string info, T& arr, int len) {
    cout << info << addressof(arr) << endl;
    for(int i = 0; i < len; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;
}

int main() {
    sayHello();

    int arr[] = { 10, 6, 3, 9, 8, 5, 1564645 };
    int arrLen = len(arr);
    printArr("origin arr: ", arr, arrLen);
    MySort<int>::mergeSort(arr, arrLen);
    printArr("after sort arr: ", arr, arrLen);

    //testFunc1();
    //testFunc2();
    // testFunc3();
    // testFunc4();
    // testFunc5();
    // testFunc6();

    system("pause");
    return 0;
}